package com.controller;

import com.bean.dto.Dto;
import com.bean.entity.Goods;
import com.bean.vo.GoodsVo;
import com.bean.vo.query.GoodsQueryVo;
import com.service.GoodsService;
import com.util.DtoUtil;
import com.util.PageUtil;
import com.util.SystemUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 仓储信息业务控制
 */
@RestController
@RequestMapping("g")
public class GoodsController {

    @Autowired
    GoodsService goodsService;

    /** 材料库存查询 */
    @RequestMapping("query/materials")
    public Dto queryByPageMaterials(PageUtil<GoodsVo> pa, GoodsQueryVo gqv){
        SystemUtil.functionTitle("材料库存查询");


        /* 打印参数 */
        System.out.println(gqv);
        System.out.println(pa);

        /* 查询数据 */
        try {
            pa = goodsService.queryGoodsByPage(gqv, pa);
        } catch (Exception e) {
//            e.printStackTrace();
            System.out.println(e.getMessage());
            return DtoUtil.returnFail(e.getMessage());
        }
//        System.out.println(pa);
        return DtoUtil.returnSuccess(pa);
    }

    /** 产品库存查询 */
    @RequestMapping("query/product")
    public Dto queryByPageProduct(PageUtil<GoodsVo> pa, GoodsQueryVo gqv){
        SystemUtil.functionTitle("产品库存查询");

        /* 打印参数 */
        gqv.setProvideId("self");
        System.out.println(gqv);
        System.out.println(pa);

        /* 查询数据 */
        try {
            pa = goodsService.queryGoodsByPage(gqv, pa);
        } catch (Exception e) {
//            e.printStackTrace();
            System.out.println(e.getMessage());
            return DtoUtil.returnFail(e.getMessage());
        }
//        System.out.println(pa);
        return DtoUtil.returnSuccess(pa);
    }

    /** 删除仓储信息 */
    @RequestMapping("remove")
    public Dto removeGoods(Goods goods){
        SystemUtil.functionTitle("删除仓储信息");
        /* 打印参数 */
        System.out.println(goods);

        /* 删除信息 */
        try {
            goodsService.removeGoods(goods);
        } catch (Exception e) {
//            e.printStackTrace();
            System.out.println(e.getMessage());
            return DtoUtil.returnFail(e.getMessage());
        }

        return DtoUtil.returnSuccess("删除成功！");
    }

    /** 修改物品仓储信息 */
    @RequestMapping("modify")
    public Dto modifyGoods(Goods goods){
        SystemUtil.functionTitle("修改物品仓储信息");
        /* 打印参数 */
        System.out.println(goods);

        /* 修改信息 */
        try {
            goodsService.modifyGoods(goods);
        } catch (Exception e) {
//            e.printStackTrace();
            System.out.println(e.getMessage());
            return DtoUtil.returnFail(e.getMessage());
        }

        return DtoUtil.returnSuccess("修改成功！");
    }

    /** 添加物品仓储信息 */
    @RequestMapping("add")
    public Dto addGoods(Goods goods){
        SystemUtil.functionTitle("添加物品仓储信息");
        /* 打印参数 */
        System.out.println(goods);

        /* 修改信息 */
        try {
            goodsService.addGoods(goods);
        } catch (Exception e) {
//            e.printStackTrace();
            System.out.println(e.getMessage());
            return DtoUtil.returnFail(e.getMessage());
        }

        return DtoUtil.returnSuccess("添加成功！");
    }

}
